# -*- coding: utf-8 -*-
from time import *
from selenium import webdriver
from appium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# print('selenium version = ', selenium.__version__)
import unittest
from send_mail import *
import os
from HTMLTestRunner import HTMLTestRunner

#-----------菜篮子---------
class Cailanzi_Test(unittest.TestCase):

    def setUp(self):
        desired_caps={
            'platformName':'Android',#手机平台的名称
            'version':'9.0',#手机平台的版本
            'deviceName':'127.0.0.1:62001',#这是测试机的型号，可以查看手机的关于本机选项获得adb devices 3ed3c40
            'appPackage':'com.freshO2O',#需要测试的app包名
            'appActivity':'com.freshO2O.ui.HomeActivity', #app启动页面
            'noReset':'True', #不重置  下一次app登录数据，信息等等都在里面。
            # 'app':'D:\\soft\\test\\app\\TensonXCL.apk',
            'automationName':'UiAutomator1',
            'noSign':'True'
            # 'skipServerInstallation':'True',
            # 'skipDeviceInitialization':'True'
        }
        driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)#4723

        def tearDown(self):
            self.driver.quit()
        
        def TestLogin(self):
            # 等主页面activity出现
            driver.wait_activity("com.freshO2O.ui.HomeActivity", 20)

            #第一步：首页点击个人中心按钮
            elem_center = driver.find_element_by_id('com.freshO2O:id/home_tab_personal')
            if elem_center:
                print('找到个人中心。。。我点！')
                elem_center.click()
            else:
                print('没有找到个人中心。。。')


            #
            # 第二步：点击登录按钮，准入输入页面
            btn_login1 = driver.find_element_by_name('登录')
            btn_login1.click()
            sleep(2)

            #在个人中心页面，输入用户名，密码，勾选自动登录，点击登录按钮
            #
            input_username = driver.find_element_by_id('com.freshO2O:id/account')#用户输入框
            input_passswd = driver.find_element_by_id('com.freshO2O:id/password')#密码输入框
            input_address = driver.find_element_by_id('com.freshO2O:id/addr')#地址输入框
            click_register = driver.find_element_by_id('com.freshO2O:id/register')#注册按钮

            input_username.send_keys('test123')#输入用户名
            sleep(1)
            input_passswd.send_keys('1234567')#输入密码
            sleep(1)
            input_address.send_keys('黄土高坡')#输入地址
            sleep(1)
            click_register.click()#点击注册按钮  验证结果
            sleep(2)

            # 验证结果  注册成功会自动登录
            # 
            click_unlogin = driver.find_element_by_id('com.freshO2O:id/personal_unlogin_button')

            if click_unlogin:
                print('找到注销按钮,注册成功了')
                click_unlogin.click()
            else:
                print('没有找到注销按钮，注册失败了')
            self.assertEqual(click_unlogin.text,'注销登录')

            
        discover = unittest.defaultTestLoader.discover('./', pattern='*login_test.py', top_level_dir=None)
        if __name__ == "__main__":
                suit = unittest.TestSuite()
                suit.addTest(TestLogin)
                now = time.strftime('%Y-%m-%d %H-%M-%S')
                file_path = os.path.join("./" + now + 'run_case.html')
                print(file_path)
                
                f = open(file_path, 'wb')
                runner = HTMLTestRunner(stream=f, verbosity=2, title='xxxx测试报告', description='xxxxx测试报告')
                runner.run(discover)
                send_mail(file_path)#发送邮件
                # unittest.main()